The present application relates to a method of keeping a record of a data transmission, to a method of controlling a sending peer of a data unit transmission protocol and to a corresponding sending peer, as well as to a method of controlling a receiving peer of a data unit transmission protocol and to a corresponding receiving peer.
The present invention relates to the field of communication via data unit transmission. In data unit communication, a stream of data symbols (e.g. bits or bytes) is divided by a sender into units, sent over an appropriate transmission network to a receiver, and the receiver reconstructs the data symbol stream on the basis of the received data units. Usually, this is performed in the context of a layering scheme (such as the OSI scheme), i.e. where a sending peer of a given protocol receives a data symbol stream from a higher layer, generates data units in accordance with the given protocol to which the sending peer adheres, and passes the generated data units to lower layers. On the receiving side, the receiving peer receives the data units from the lower layer, reconstructs the data symbol stream, and passes the reconstructed data symbol stream to the higher layer. The concept of dividing a data symbol stream into data units and the concept of layering are well known in the art, such that a further explanation is not necessary here.
It is noted that such sub-divisions of data are referred to by a variety of names, such as packets, segments, frames, protocol data units, service data units, etc. In the context of the present specification and claims, the term “data unit” is used generically to relate to any such sub-divisions of data for the purpose of communication.
FIG. 5 is a schematic representation of a sending and a receiving peer of a communication. More specifically, two peers 51 and 52 of a predetermined layer LX are shown. The layer LX can e.g. be the link layer L2. For the purpose of the present explanation it will be assumed that peer 51 is acting as sending peer and peer 52 as receiving peer. In this case sending peer 51 receives a stream of data symbols from higher layer LX+1. Sending peer 51 comprises a data unit generating part 510, e.g. a buffer, and a control part 511, e.g. a processor for controlling the data unit generating part 510. Furthermore, it is assumed that a plurality of channels 53 for lower layer LX−1 exist, and that sending peer 51 comprises a switching part 512 for selecting a channel, where control part 511 controls the data unit generator 510 in such a way that data units of the correct format are generated for a given channel. In other words, each of the channels is associated with a particular data unit format. The lower layer LX−1 (and possibly layers below LX−1) provide a connection 55 to receiving peer 52, where the data units arrive over channels 54 that correspond to the channels 53. Consequently receiving peer 52 has a switching part 522 for receiving data units from the appropriate channel 54, and the data units are processed in a part 520 that serves to reconstruct the data symbol stream under control of a control part 521. The reconstructed data symbol stream is passed to higher layer LX+1.
For example, if LX is the link layer L2, then the various channels 53, 54 can e.g. relate to a variety of different physical communication paths, such as a variety of WCDMA (Wideband Code Division Multiple Access) connections, a HSDPA (High-Speed Down Link Packet Access) connection, a GSM (Global System for Mobile Communication) connection, a WLAN (Wireless Local Area Network) connection, or some other wireless type of connection.
In order for the receiving peer 52 to be able to reconstruct the data symbol stream, each data unit carries a sequence position indicator that indicates a position in a sequence of data units. By correctly ordering the sequence in accordance with the sequence position indicators, the receiving peer can reconstruct the data symbol stream.
In the scenario of FIG. 5, it is assumed that at least some of the channels 53, 54 require data units of a different format (e.g. of a different size).
As a consequence, if the sending peer 51 is in the process of sending data units over one of the channels 53 in accordance with a format associated with said channel, then it keeps a record of the amount of sent data symbols of said data symbol streams in terms of the data units of the format being used. In other words, the sending peer keeps a record of a sequence of data units in terms of the sequence position indicators where the records shows which data units have been sent and which have not.
In the situation as indicated in FIG. 5, the following can occur. It can become necessary or desirable to switch from a given channel (and given data unit format) to a new channel (and therefore possibly new data unit format) during the ongoing transmission of a data symbol stream. In order to guarantee a correct reconstruction of the data symbol stream at the receiving peer, it is envisionable to purge the sending buffer in data unit generator 510 together with all of the corresponding records kept in terms of the initial data unit format and corresponding sequence position indicators, and to restart sending with the new data units in their new format, where the corresponding new sequence position indicators are also reset, i.e. start at the initial value (zero or one).
Such a procedure for purging a send buffer and resetting the corresponding records may lead to a number of disadvantages. For one thing, the purging can lead to a loss of parts of the data symbol stream. Also, if ARQ (Automatic Repeat Request) is implemented between the sending peer 51 and receiving peer 52, then there the problem that after a switch in channels and in formats, it is difficult to appropriately retransmit lost or damaged data units.